package com.itheima.reggie.dao;

import com.itheima.reggie.entity.Employee;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface EmployeeDao {


    //根据用户名查找用户
    @Select("select * from employee where username=#{username} ")
    Employee findByName(Employee employee);

    @Insert("insert into employee values(null,#{name},#{username},#{password},#{phone},#{sex},#{idNumber},#{status},#{createTime},#{updateTime},#{createUser},#{updateUser})")
    void save(Employee employee);



    /*
        分页的时候name的参数是不一定传递的，所以我们需要使用动态sql
        ，一旦使用动态sql，即使只有一个参数也需要使用参数的名字
     */
    List<Employee>  findByPage(@Param("name") String name);

    /*
    修改员工信息 ,不管你是修改员工的状态还是修改员工的基本信息都可以使用这个方法，
    由于修改不同信息传递的字段不一样，所以这里使用动态sql
     */
    void updateEmp(Employee employee);

    @Select("select * from employee where id = #{id}")
    Employee findById(Long id);
}
